package com.mmaingenieria.GestorFacturacion.model;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.ResourceBundle;

import com.mmaingenieria.GestorFacturacion.beans.Cliente;
import com.mmaingenieria.GestorFacturacion.model.interfaces.InterfaceClienteDAO;

public abstract class MySqlClienteDAO implements InterfaceClienteDAO{


	private static ResourceBundle rb;
	 
	public MySqlClienteDAO() {
        //decimos que lea dicho archivo
        //rb = ResourceBundle.getBundle("com.mmaingenieria.GestorFacturacion.exceptions.excepciones");
    }
	public synchronized ArrayList<Cliente> getCliente() throws Exception {
        ArrayList<Cliente> listacliente = new ArrayList<Cliente>();
        Connection conexion = null;
        String sql = null;

        sql = "SELECT usuario_id, dni, nombre, apellido1,apellido2, usuario, password, email, date_created, rol, estado FROM usuario";

        ArrayList<Cliente> listacliente1 = null;
		try 
        {
        	//Se establece la conexion con la BD
            conexion = MySqlDAOFactory.conectar();
            
            PreparedStatement stmt = conexion.prepareStatement(sql);
            
            //Se ejecuta la query
            ResultSet resultadoquery = stmt.executeQuery();            
            
            //Se recorre la lista de usuarios
            while (resultadoquery.next()) 
            {
            	listacliente1.addAll((Collection<? extends Cliente>) instanciarCliente(resultadoquery));
            }            
        } 
        catch (Exception ex) 
        {
        	throw ex;
        } 
        finally 
        {
        	//Se cierra la conexion con la BD
            MySqlDAOFactory.desconectar(conexion);
        }

        return listacliente1;
    }
	private Object instanciarCliente(ResultSet resultadoquery) {
		// TODO Auto-generated method stub
		return null;
	}
}
